Программирование драйверов Windows

       

Секция описания моделей аппаратуры [Models]


Для каждого поставщика, указанного в секции [Manufacturer], должна быть представлена соответствующая секция описания моделей его аппаратуры [Models]. Имя данного типа секций не может быть жестко регламентировано, потому что разработчик сам задает его в секции [Manufacturer].

В каждой такой секции [Models] записи представляются по следующей форме:

device_description = install_section_name,hw_id[,compatible_id...]

где device_description представляет собой уникальный набор видимых символов либо маркер, обязательный для определения в секции [Strings]. Данная строка будет предъявляться пользователю во время инсталляционного диалога, так что имеет смысл позаботиться о поддержке нескольких языков.

Значение install_section_name представляет собой ссылку на секцию, описывающую собственно действия по инсталляции для данной модели (в документации DDK такого типа секции обозначены как [DDInstall]).

Значение hw_id является PnP идентификатором, возвращаемым аппаратным устройством во время опроса PnP-совместимой шины. Например, USB\VID_04B4&PID_1002 определяет плату тестового набора фирмы Cypress (так называемый EZUSB Kit). Любое количество значений compatible_id может быть приведено для обозначения того, что та же самая инсталляционная запись должна быть использована для указанного в этом списке устройства.

Применение одной и той же группы символов может сбить с толку начинающего разработчика inf-файлов. Рассмотрим показательный пример из DDK для Windows XP.

[Version] Signature = "$Windows NT$" ; inf-файл для установки только под NT Class=System ClassGUID={4d36e97d-e325-11ce-bfc1-08002be10318} Provider=%MSFT% DriverVer= 5/1/2001

[Manufacturer] %MSFT%=MSFT ; со знаками процента - маркер

[MSFT] %_MCADesc%=_MCA_Inst,_MCA0000

[_MCA_Inst.ntx86] CopyFiles = _MCA.Files.x86_12

[Strings] MSFT= "Microsoft" ; раскрываем маркер _MCADesc= "Microsoft MCA Driver"

В секции [Manufacturer] видим, что маркер %MSFT% "приравнивается" ссылке MSFT.

Содержание раздела